package com.ruoyi.rsikManage.domain;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
import java.util.List;

/**
 * 每个监控点关联：一个，和一个该监控点的报警列表
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MonitorPoint {


    //通道序号
    private String idx;
    //煤矿编码
    private Long unitCode;
    //煤矿编码
    private String unitName;
    //通道国标id
    private String apeId;
    //资源类型
    private String resourceType;
    //通道子类型
    private String subType;
    //通道名称
    private String name;
    //摄像机类型
    private String model;
    //所属设备id
    private String ownerApsId;
    //所属设备名称
    private String ownerApsName;
    //所属设备IP
    private String ownerApsIp;
    //在线状态
    private String isOnline;
    private Integer durationOfOnlineOrOffline;
    //是否启用
    private String isEnabled;
    //组织id
    private String orgIndex;
    //组织名称
    private String orgName;
    //行政区域码
    private String placeCode;
    //安装点位
    private String installationPlace;
    //安装点位编码
    private String installationPlaceCode;
    //场所编码
    private String siteCode;
    //场所地址
    private String standPlaceAddress;
    //场所主键
    private Integer standPlaceId;
    //设备经度，WGS84坐标系
    private Double longitude;
    //设备纬度，WGS84坐标系
    private Double latitude;
    //设备海拔，WGS84坐标系
    private Double elevation;
    //最大分割数
    private Integer maxDivision;
    //解码模式
    private String decodeMode;
    //布防类型
    private String defenceType;
    //布防状态
    private String defenceStatus;
    //传感器类型
    private String sensorType;
    //报警等级
    private String alarmLevel;
    //创建时间
    private Date createDate;
    //创建人
    private String createBy;
    //修改时间
    private Date updateDate;
    //修改人
    private String updateBy;
    //删除时间
    private Date delDate;
    //删除人
    private String delBy;
    //删除标志
    private Integer delFlag;
    //所在资源树节点id
    private Integer resourceTreeNodeId;
    //所在资源树节点id
    private String resourceTreeNodeName;
    //实时更新时间
    private Date realUpdateTime;
    //报警列表
    private List<TAlarms> alarmsList;
    //算法列表
    private List<Algorithm> algorithmList;
    //该监控点的报警总数
    private Integer monitorAlarmCount;
    //该监控点的算法总数
    private Integer monitorAlgorithmCount;
    //mysql中最新的诊断时间
    private Date lastDiagnosisTime;
    private String replayStreamUrl;

    private List<Long> unitCodes;
    //离线超时阈值
    private String offlineAlarmSettingMinutes;
    //离线告警开关
    private String offlineSwitch;
    //监测周期内持续时间
    private String cycleDuration;



    private static final long serialVersionUID = 1L;

    public MonitorPoint(String apeId, String idx, String resourceType, String subType, String name, String isOnline) {
        this.idx = idx;
        this.apeId = apeId;
        this.resourceType = resourceType;
        this.subType = subType;
        this.name = name;
        this.isOnline = isOnline;
    }

    public MonitorPoint setIdx(String idx) {
        this.idx = idx;
        return this;
    }

    public MonitorPoint setUnitCode(Long unitCode) {
        this.unitCode = unitCode;
        return this;
    }

    public MonitorPoint setApeId(String apeId) {
        this.apeId = apeId;
        return this;
    }

    public MonitorPoint setResourceType(String resourceType) {
        this.resourceType = resourceType;
        return this;
    }

    public MonitorPoint setSubType(String subType) {
        this.subType = subType;
        return this;
    }

    public MonitorPoint setName(String name) {
        this.name = name;
        return this;
    }

    public MonitorPoint setModel(String model) {
        this.model = model;
        return this;
    }

    public MonitorPoint setOwnerApsId(String ownerApsId) {
        this.ownerApsId = ownerApsId;
        return this;
    }

    public MonitorPoint setOwnerApsName(String ownerApsName) {
        this.ownerApsName = ownerApsName;
        return this;
    }

    public MonitorPoint setOwnerApsIp(String ownerApsIp) {
        this.ownerApsIp = ownerApsIp;
        return this;
    }

    public MonitorPoint setIsOnline(String isOnline) {
        this.isOnline = isOnline;
        return this;
    }

    public MonitorPoint setDurationOfOnlineOrOffline(Integer durationOfOnlineOrOffline) {
        this.durationOfOnlineOrOffline = durationOfOnlineOrOffline;
        return this;
    }

    public MonitorPoint setIsEnabled(String isEnabled) {
        this.isEnabled = isEnabled;
        return this;
    }

    public MonitorPoint setOrgIndex(String orgIndex) {
        this.orgIndex = orgIndex;
        return this;
    }

    public MonitorPoint setOrgName(String orgName) {
        this.orgName = orgName;
        return this;
    }

    public MonitorPoint setPlaceCode(String placeCode) {
        this.placeCode = placeCode;
        return this;
    }

    public MonitorPoint setInstallationPlace(String installationPlace) {
        this.installationPlace = installationPlace;
        return this;
    }

    public MonitorPoint setInstallationPlaceCode(String installationPlaceCode) {
        this.installationPlaceCode = installationPlaceCode;
        return this;
    }

    public MonitorPoint setSiteCode(String siteCode) {
        this.siteCode = siteCode;
        return this;
    }

    public MonitorPoint setStandPlaceAddress(String standPlaceAddress) {
        this.standPlaceAddress = standPlaceAddress;
        return this;
    }

    public MonitorPoint setStandPlaceId(Integer standPlaceId) {
        this.standPlaceId = standPlaceId;
        return this;
    }

    public MonitorPoint setLongitude(Double longitude) {
        this.longitude = longitude;
        return this;
    }

    public MonitorPoint setLatitude(Double latitude) {
        this.latitude = latitude;
        return this;
    }

    public MonitorPoint setElevation(Double elevation) {
        this.elevation = elevation;
        return this;
    }

    public MonitorPoint setMaxDivision(Integer maxDivision) {
        this.maxDivision = maxDivision;
        return this;
    }

    public MonitorPoint setDecodeMode(String decodeMode) {
        this.decodeMode = decodeMode;
        return this;
    }

    public MonitorPoint setDefenceType(String defenceType) {
        this.defenceType = defenceType;
        return this;
    }

    public MonitorPoint setDefenceStatus(String defenceStatus) {
        this.defenceStatus = defenceStatus;
        return this;
    }

    public MonitorPoint setSensorType(String sensorType) {
        this.sensorType = sensorType;
        return this;
    }

    public MonitorPoint setAlarmLevel(String alarmLevel) {
        this.alarmLevel = alarmLevel;
        return this;
    }

    public MonitorPoint setCreateDate(Date createDate) {
        this.createDate = createDate;
        return this;
    }

    public MonitorPoint setCreateBy(String createBy) {
        this.createBy = createBy;
        return this;
    }

    public MonitorPoint setUpdateDate(Date updateDate) {
        this.updateDate = updateDate;
        return this;
    }

    public MonitorPoint setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
        return this;
    }

    public MonitorPoint setDelDate(Date delDate) {
        this.delDate = delDate;
        return this;
    }

    public MonitorPoint setDelBy(String delBy) {
        this.delBy = delBy;
        return this;
    }

    public MonitorPoint setDelFlag(Integer delFlag) {
        this.delFlag = delFlag;
        return this;
    }

    public MonitorPoint setResourceTreeNodeId(Integer resourceTreeNodeId) {
        this.resourceTreeNodeId = resourceTreeNodeId;
        return this;
    }

    public MonitorPoint setResourceTreeNodeName(String resourceTreeNodeName) {
        this.resourceTreeNodeName = resourceTreeNodeName;
        return this;
    }

    public MonitorPoint setRealUpdateTime(Date realUpdateTime) {
        this.realUpdateTime = realUpdateTime;
        return this;
    }

    public MonitorPoint setAlarmsList(List<TAlarms> alarmsList) {
        this.alarmsList = alarmsList;
        return this;
    }

    public MonitorPoint setAlgorithmList(List<Algorithm> algorithmList) {
        this.algorithmList = algorithmList;
        return this;
    }

    public MonitorPoint setMonitorAlarmCount(Integer monitorAlarmCount) {
        this.monitorAlarmCount = monitorAlarmCount;
        return this;
    }

    public MonitorPoint setMonitorAlgorithmCount(Integer monitorAlgorithmCount) {
        this.monitorAlgorithmCount = monitorAlgorithmCount;
        return this;
    }

    public MonitorPoint setLastDiagnosisTime(Date lastDiagnosisTime) {
        this.lastDiagnosisTime = lastDiagnosisTime;
        return this;
    }

    public MonitorPoint setReplayStreamUrl(String replayStreamUrl) {
        this.replayStreamUrl = replayStreamUrl;
        return this;
    }
}
